home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / net_bm.arc / DIRUTIL.C < prev    next >
Encoding:
C/C++ Source or Header  |  1987-12-30  |  793 b   |  36 lines

  1. #include <stdio.h>
  2. #include <stat.h>
  3.  
  4. #define REGFILE    (ST_HIDDEN|ST_SYSTEM|ST_DIRECT)
  5. #define    SET_DTA        0x1a
  6. #define    FIND_FIRST    0x4e
  7. #define    FIND_NEXT    0x4f
  8.  
  9. struct dirent {
  10.     char rsvd[21];
  11.     char attr;
  12.     short ftime;
  13.     short fdate;
  14.     long fsize;
  15.     char fname[13];
  16. };
  17. /* wildcard filename lookup */
  18. filedir(name,times,ret_str)
  19. char *name;
  20. int times;
  21. char *ret_str;
  22. {
  23.     register char *cp,*cp1;
  24.     static struct dirent sbuf;
  25.  
  26.     bdos(SET_DTA,&sbuf);    /* Set disk transfer address */
  27.     /* Find matching file */
  28.     if(dos(times == 0 ? FIND_FIRST:FIND_NEXT,0,REGFILE,name,0,0) == -1)
  29.         sbuf.fname[0] = '\0';
  30.  
  31.     /* Copy result to output, forcing to lower case */
  32.     for(cp = ret_str,cp1 = sbuf.fname; cp1 < &sbuf.fname[13] && *cp1 != '\0';)
  33.         *cp++ = tolower(*cp1++);
  34.     *cp = '\0';
  35. }
  36.